package com.kjlink.internal.workreport.user.mapper;

import cn.xuqiudong.common.base.mapper.BaseMapper;
import cn.xuqiudong.common.base.vo.Select2VO;
import com.kjlink.internal.report4vue.statictics.response.ApiUserSummary;
import com.kjlink.internal.workreport.user.lookup.UserListLookup;
import com.kjlink.internal.workreport.user.model.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 功能: :用户,来自oa Mapper
 *
 * @author Vic.xu
 * @since 2024-04-29 13:38
 */
public interface UserMapper extends BaseMapper<User> {

    User getByUserCode(@Param("userCode") String userCode);

    List<User> findUsersByProjectId(@Param("projectId") Integer projectId);

    /**
     * 尚未被选择的其他人员
     */
    List<User> userList(UserListLookup lookup);

    List<Select2VO> findByGroupId(@Param("groupId") Integer groupId);

    /**
     * 所有人员
     */
    List<Select2VO> all();

    /**
     * 项目经理
     */
    List<Select2VO> managerUsers();

    ApiUserSummary summary();

    /**
     * 根据组id查询人员数量
     */
    int checkUserNumberByGroupId(@Param("groupId") int groupId);

    /**
     * 根据组ids查询人员
     * @param groupIds 为null则查询全部
     */
    List<User> findUserByGroupIds(List<Integer> groupIds);
}
